﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class area_admin_equipamentos : System.Web.UI.Page
{
    private SETOR setores = new SETOR();
    private EQUIPAMENTOS_SETORE equipamentos_setores = new EQUIPAMENTOS_SETORE();
    private dbSisInfoDataContext Banco = new dbSisInfoDataContext();

    protected void Page_Load(object sender, EventArgs e)
    {
        Session["Titulo"] = "Setores";

    }

    protected void btnIncluir_Click(object sender, EventArgs e)
    {
        var empresas = from Em in Banco.EMPRESAs
                       select Em;


        if (empresas.ToList<EMPRESA>().Capacity < 1)
        {
            ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "javascript", "alert('Não há empresas! \n Não é possivel inserir um setor.')", true);
        }
        else
        {
            // Preenche os campos
            setores.Nome = txtDescricao.Text;
            setores.idEmpresa = empresas.ToList<EMPRESA>()[0].idEmpresa;

            Banco.SETORs.InsertOnSubmit(setores);
            Banco.SubmitChanges();
            grdSetores.DataBind();

            txtDescricao.Text = string.Empty;
        }
    }

    protected void grdSituacoes_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (ViewState["botao"].ToString().Trim() == "Add")
        {
            PopularListaEquipamentos(((DropDownList)grdSetores.SelectedRow.FindControl("dropEquipamentos")));
            ((Panel)grdSetores.SelectedRow.FindControl("pnlEquipamentos")).Visible = true;
        }
        else
        {
            Button1_ModalPopupExtender.Show();
        }
    }

    private void PopularListaEquipamentos(DropDownList drop)
    {
        // Configurar drop
        drop.DataTextField = "Nome";
        drop.DataValueField = "idEquipamento";

        var dadosequipamentos = from E in Banco.SelecionaEquipamentosDisponiveisSetor(Convert.ToInt32(grdSetores.SelectedDataKey["idSetor"]))
                                orderby E.Nome
                                select E;

        drop.Items.Clear();
        drop.Items.Add(new ListItem(">> ESCOLHA O EQUIPAMENTO <<", "0"));
        
        drop.DataSource = dadosequipamentos;
        drop.DataBind();
    }

    protected void btnPesquisar_Click(object sender, EventArgs e)
    {
        linqSetores.Where = "Nome.Contains(\"" + txtDescricao.Text + "\")";
        linqSetores.DataBind();
        grdSetores.DataBind();

    }

    protected void grdEquipamentos_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {

    }
    protected void btnSim0_Click(object sender, EventArgs e)
    {

        grdSetores.DeleteRow(grdSetores.SelectedIndex);
        grdSetores.DataBind();
    }
    protected void grdEquipamentos_DataBound(object sender, EventArgs e)
    {
        if (grdSetores.Rows.Count > 0)
        {
            grdSetores.HeaderRow.Cells[0].Text += " - Quantidade de items: " + grdSetores.Rows.Count.ToString();
        }
    }
    protected void grdEquipamentos_RowEditing(object sender, GridViewEditEventArgs e)
    {

    }

    protected void Button3_Click(object sender, EventArgs e)
    {
        ViewState["botao"] = "Add";
    }

    protected void dropEquipamentos_SelectedIndexChanged(object sender, EventArgs e)
    {
        //Salvar
        equipamentos_setores.DataInicio = DateTime.Now;
        equipamentos_setores.idEquipamento = Convert.ToInt32(((DropDownList)sender).SelectedValue);
        equipamentos_setores.idSetor = Convert.ToInt32(grdSetores.SelectedValue);

        Banco.EQUIPAMENTOS_SETOREs.InsertOnSubmit(equipamentos_setores);
        Banco.SubmitChanges();

        ((GridView)grdSetores.SelectedRow.FindControl("grdEquipamentosSetor")).DataBind();
        PopularListaEquipamentos(((DropDownList)grdSetores.SelectedRow.FindControl("dropEquipamentos"))); ;



    }
    protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
    {

    }
    protected void grdEquipamentosSetor_RowDataBound(object sender, GridViewRowEventArgs e)
    {
       
    }
    protected void grdSetores_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            ((DropDownList)e.Row.FindControl("dropEquipamentos")).Items.Clear();

            // Configurar drop
            ((DropDownList)e.Row.FindControl("dropEquipamentos")).DataTextField = "Nome";
            ((DropDownList)e.Row.FindControl("dropEquipamentos")).DataValueField = "idEquipamento";

            var dadosequipamentos = from E in Banco.EQUIPAMENTOs
                                    orderby E.Nome
                                    select E;

            
        
            ((DropDownList)e.Row.FindControl("dropEquipamentos")).DataSource = dadosequipamentos;
            ((DropDownList)e.Row.FindControl("dropEquipamentos")).DataBind();
        }
    }
    protected void grdEquipamentosSetor_RowDeleted(object sender, GridViewDeletedEventArgs e)
    {
        PopularListaEquipamentos(((DropDownList)grdSetores.SelectedRow.FindControl("dropEquipamentos")));
    }
}
